package org.aplombh.java.awcing.basic.greedy.absoluteValueInquality;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

/**
 * 在一条数轴上有 N 家商店，它们的坐标分别为 A1∼AN。
 * <p>
 * 现在需要在数轴上建立一家货仓，每天清晨，从货仓到每家商店都要运送一车商品。
 * <p>
 * 为了提高效率，求把货仓建在何处，可以使得货仓到每家商店的距离之和最小。
 * <p>
 * 输入格式
 * 第一行输入整数 N。
 * <p>
 * 第二行 N 个整数 A1∼AN。
 * <p>
 * 输出格式
 * 输出一个整数，表示距离之和的最小值。
 * <p>
 * 数据范围
 * 1≤N≤100000,
 * 0≤Ai≤40000
 * 输入样例：
 * 4
 * 6 2 9 1
 * 输出样例：
 * 12
 */
public class WarehouseLocation_104 {
    public static final int N = 100010;
    public static int[] a = new int[N];
    public static int n;
    public static final BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException {
        n = Integer.parseInt(reader.readLine());
        String[] s = reader.readLine().split(" ");
        for (int i = 0; i < n; i++) {
            a[i] = Integer.parseInt(s[i]);
        }

        // 还有求中位数的算法 o(n)
        Arrays.sort(a, 0, n);
        int res = 0;
        for (int i = 0; i < n; i++) {
            // a[n/2] 为中位数
            res += Math.abs(a[i] - a[n / 2]);
//            res += a[i] - a[i / 2];
        }
        System.out.println(res);
    }
}

/*
 *  相关题目  3167 一位拓展到二维
 */